package New;

import java.util.*;

/**
 * 基本类型的数组转成list，直接打印list是地址值，包装类型的数组转成list，打印出来的是具体的数组
 * 字符串在进行排序的时候，先比第一个字符，如果相同，继续比下一个字符，这就是为什么排序后为 a,abc,ac,b的原因
 */
public class SequencePractise {

    public static void main(String[] args) {
        String a [] = {"1","我","a","Abc","3","4","2","5","b","白嫖","abc","3","ac","6","8","8","7"};
        Arrays.sort(a,0,4,String::compareToIgnoreCase);//从指定下标开始到指定下标结束顺序排列
//        Arrays.sort(a,Comparator.reverseOrder());//对数组a逆序排列
//        String::compareToIgnoreCase不区分大小写排列
//        Arrays.sort(a);//适用于数组的顺序排列
        System.out.println(Arrays.toString(a));
        List<String> list = new ArrayList(Arrays.asList(a));
        list.sort(Comparator.reverseOrder());//逆序排列，对包装类型数组转成的list有效
        list.sort(Collections.reverseOrder());//逆序排列，与Comparator.reverseOrder一样
//        list.sort(((o1, o2) -> o2-o1));//逆序排列，适用于数字的包装类型
//        list.sort(((o1, o2) -> o2.compareTo(o1)));//逆序排列,适用于字符串和数字的包装类型
        System.out.println(list);
//        list.sort((a1,a2)->a1.compareTo(a2));//顺序排列，可以换成下面两种写法,这里的a1可以换成其他变量
//        list.sort((Comparator.comparingInt(o -> o)));//顺序排列
        list.sort(String::compareTo);//顺序排列，对包装类型数组转成的list有效
        System.out.println(list);
        char c = '白';//30333
        char d = '嫖';//23254
        char e = '我';//25105
        System.out.println(Integer.valueOf(e));
    }
}
